package com.cs.beneficios.business.entity;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;

import com.cs.beneficios.business.model.AreaVO;
import com.cs.beneficios.business.model.AuditoriaVO;
import com.cs.beneficios.business.model.SubProgramaVO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.business.model.UserVO;

public class AuditoriaDAO {
	/**
	 * Conexion a la base de datos.
	 */
	private Connection conn = null;
	private ConnectionFactory cf;

	private final DecimalFormat dF = new DecimalFormat("###,###,###,###,###.##");

	/**
	 * Constructor que inicializa la conexion con la base de datos.
	 * 
	 * @param conn
	 *            Conexion con la base de datos.
	 */

	public AuditoriaDAO(ConnectionFactory cf) {
		this.cf = cf;
		try {
			this.conn = this.cf.getConnection();
		} catch (SQLException e) {
		}
	}

	public ResultSet getUsers(String cedula, String descripcion)
			throws SQLException {
		String query = "SELECT codigo, nombre, SUBSTR(descripcion,1,30) descripcion "
				+ "FROM paoyer.TCS_USUARIO WHERE campo_a1 IS NULL ";
		if (cedula != null && !cedula.equalsIgnoreCase("")) {
			query += "AND nombre = '" + cedula + "' ";
		}
		if (descripcion != null && !descripcion.equalsIgnoreCase("")) {
			query += "AND descripcion like UPPER('%" + descripcion + "%') ";
		}
		// System.out.println(query);
		ResultSet rs = cf.getRecordsRset(query, null, conn);
		if (rs != null)
			return rs;
		else
			return null;
	}

	public Collection getReporte(String tabla, String fechaCreaDesde,
			String fechaMofificaDesde, String fechaCreaHasta,
			String fechaMofificaHasta, String usuarioCrea,
			String usuarioModifica) throws SQLException {
		String query = "SELECT ";
		query += " tabla.USUARIO_CREA, TO_CHAR(tabla.FECHA_CREA,'DD/MM/RRRR') FECHA_CREA ,"
				+ " tabla.TERMINAL_CREA, tabla.USUARIO_MODIFICA, "
				+ " TO_CHAR(tabla.FECHA_MODIFICA,'DD/MM/RRRR') FECHA_MODIFICA, "
				+ " tabla.TERMINAL_MODIFICA, ";

		if (tabla.equals("TCS_BEN_BENEFICIARIO")) {
			query += " tabla.CODIGO, tabla.TIPO_DOCUMENTO,  tabla.NUMERO_DOCUMENTO, tabla.PRIMER_NOMBRE, "
					+ " tabla.SEGUNDO_NOMBRE, tabla.PRIMER_APELLIDO, tabla.SEGUNDO_APELLIDO ";

			query += "FROM " + tabla + " tabla";

			query += " WHERE ROWNUM <= 100 ";

		} else if (tabla.equals("TCS_BEN_PROGRAMA")) {
			query += " tabla.CODIGO, area.NOMBRE area, usu.NOMBRE usuario, "
					+ " tabla.NOMBRE ";

			query += "FROM " + tabla
					+ " tabla, TCS_BEN_AREA area, paoyer.TCS_USUARIO usu ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND area.CODIGO = tabla.AREA_CODIGO "
					+ " AND usu.CODIGO = tabla.USU_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBPROGRAMA")) {
			query += " tabla.CODIGO, tabla.NOMBRE, "
					+ " DECODE(tabla.VALIDAR_CONTRA_ESTUD,'S''Si','N','No') VALIDAR_CONTRA_ESTUD, "
					+ " DECODE(tabla.VALIDAR_CONTRA_SISBEN,'S''Si','N','No') VALIDAR_CONTRA_SISBEN, "
					+ " nvl(tabla.VALOR_UNITARIO_BENEFICIO,0) VALOR_UNITARIO_BENEFICIO, "
					+ " pro.NOMBRE programa, usu.NOMBRE usuario, area.NOMBRE area ";

			query += "FROM "
					+ tabla
					+ " tabla, TCS_BEN_PROGRAMA pro, TCS_BEN_AREA area, paoyer.TCS_USUARIO usu ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND area.CODIGO = tabla.AREA_CODIGO "
					+ " AND usu.CODIGO = tabla.USU_CODIGO "
					+ " AND pro.CODIGO = tabla.PRG_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SEDE")) {
			query += " tabla.CODIGO, tabla.NOMBRE, "
					+ " tabla.CARACTER, tabla.TIPO, vflex.NOMBRE municipio ";

			query += "FROM " + tabla
					+ " tabla, paoyer.TCS_VALOR_FLEXIBLE vflex ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND vflex.CODIGO = tabla.VFL_CODIGO_MUNICIPIO ";

		} else if (tabla.equals("TCS_BEN_BENEFICIO_OTORGADO")) {
			query += " tabla.CODIGO, TO_CHAR(tabla.FECHA_BENEFICIO,'DD/MM/RRRR') FECHA_BENEFICIO, "
					+ " subpro.NOMBRE subprograma, "
					+ " ben.NUMERO_DOCUMENTO ||' | '|| ben.PRIMER_NOMBRE ||' '|| "
					+ " ben.SEGUNDO_NOMBRE ||' '||  ben.PRIMER_APELLIDO ||' '|| "
					+ " ben.SEGUNDO_APELLIDO beneficiario, sede.NOMBRE sede ";

			query += "FROM "
					+ tabla
					+ " tabla, TCS_BEN_BENEFICIARIO ben, TCS_BEN_SEDE sede, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND ben.CODIGO = tabla.BEN_CODIGO "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO "
					+ " AND sede.CODIGO = tabla.SEDE_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBP_ATR_BENEFICIARIO")) {
			query += " tabla.CODIGO, tabla.NOMBRE, "
					+ " DECODE(tabla.TIPO_DATO,'A','Alfanumerico','F','Fecha','N','Numerico','L','Solo letras') TIPO_DATO, "
					+ " DECODE(tabla.OBLIGATORIO,'S','Si','N','No') OBLIGATORIO, "
					+ " subpro.NOMBRE subprograma ";

			query += "FROM " + tabla + " tabla, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBPROGRAMA_SEDE")) {
			query += " tabla.CODIGO, TO_CHAR(tabla.DESDE,'DD/MM/RRRR') DESDE, "
					+ " TO_CHAR(tabla.HASTA,'DD/MM/RRRR') HASTA, "
					+ " tabla.NUMERO_BENEFICIO, tabla.NUMERO_BEN_DISPONIBLE, "
					+ " sede.NOMBRE sede, subpro.NOMBRE subprograma ";

			query += "FROM " + tabla
					+ " tabla, TCS_BEN_SEDE sede, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE ROWNUM <= 100 "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO "
					+ " AND sede.CODIGO = tabla.SEDE_CODIGO ";
		}

		if (!fechaCreaDesde.equalsIgnoreCase("")
				&& !fechaCreaHasta.equalsIgnoreCase("")) {
			query += " AND tabla.FECHA_CREA BETWEEN TO_DATE('" + fechaCreaDesde
					+ "','dd/mm/rrrr') AND TO_DATE('" + fechaCreaHasta
					+ "','dd/mm/rrrr')";
		}
		if (!fechaMofificaDesde.equalsIgnoreCase("")
				&& !fechaMofificaHasta.equalsIgnoreCase("")) {
			query += " AND tabla.FECHA_MODIFICA BETWEEN TO_DATE('"
					+ fechaMofificaDesde + "','dd/mm/rrrr') AND TO_DATE('"
					+ fechaMofificaHasta + "','dd/mm/rrrr')";
		}
		if (!usuarioCrea.equalsIgnoreCase("")) {
			query += " AND tabla.USUARIO_CREA = '" + usuarioCrea + "' ";
		}
		if (!usuarioModifica.equalsIgnoreCase("")) {
			query += " AND tabla.USUARIO_MODIFICA = '" + usuarioModifica + "' ";
		}

		query += " ORDER BY tabla.codigo DESC ";
		// System.out.println(query);
		Collection reporte = new LinkedList();
		AuditoriaVO objReporte = null;

		ResultSet rs = cf.getRecordsRset(query, null, conn);

		while (rs.next()) {
			objReporte = new AuditoriaVO();
			objReporte.setUsuarioCrea(rs.getString("USUARIO_CREA"));
			objReporte.setFechaCrea(rs.getString("FECHA_CREA"));
			objReporte.setTerminalCrea(rs.getString("TERMINAL_CREA"));
			objReporte.setUsuarioModifica(rs.getString("USUARIO_MODIFICA"));
			objReporte.setFechaModifica(rs.getString("FECHA_MODIFICA"));
			objReporte.setTerminalModifica(rs.getString("TERMINAL_MODIFICA"));
			if (tabla.equals("TCS_BEN_BENEFICIARIO")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("TIPO_DOCUMENTO"));
				objReporte.setColumna3(rs.getString("NUMERO_DOCUMENTO"));
				objReporte.setColumna4(rs.getString("PRIMER_NOMBRE"));
				objReporte.setColumna5(rs.getString("SEGUNDO_NOMBRE"));
				objReporte.setColumna6(rs.getString("PRIMER_APELLIDO"));
				objReporte.setColumna7(rs.getString("SEGUNDO_APELLIDO"));
			} else if (tabla.equals("TCS_BEN_PROGRAMA")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("NOMBRE"));
				objReporte.setColumna4(rs.getString("AREA"));
				objReporte.setColumna5(rs.getString("USUARIO"));
			} else if (tabla.equals("TCS_BEN_SUBPROGRAMA")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("NOMBRE"));
				objReporte.setColumna3(rs.getString("PROGRAMA"));
				objReporte.setColumna4(rs.getString("USUARIO"));
				objReporte.setColumna5(rs.getString("AREA"));
				objReporte.setColumna6(rs.getString("VALIDAR_CONTRA_ESTUD"));
				objReporte.setColumna7(rs.getString("VALIDAR_CONTRA_SISBEN"));
				objReporte
						.setColumna8(rs.getString("VALOR_UNITARIO_BENEFICIO"));

			} else if (tabla.equals("TCS_BEN_SEDE")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("NOMBRE"));
				objReporte.setColumna3(rs.getString("MUNICIPIO"));
				objReporte.setColumna4(rs.getString("CARACTER"));
				objReporte.setColumna5(rs.getString("TIPO"));

			} else if (tabla.equals("TCS_BEN_BENEFICIO_OTORGADO")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("SUBPROGRAMA"));
				objReporte.setColumna3(rs.getString("BENEFICIARIO"));
				objReporte.setColumna4(rs.getString("SEDE"));
				objReporte.setColumna5(rs.getString("FECHA_BENEFICIO"));

			} else if (tabla.equals("TCS_BEN_SUBP_ATR_BENEFICIARIO")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("NOMBRE"));
				objReporte.setColumna3(rs.getString("SUBPROGRAMA"));
				objReporte.setColumna4(rs.getString("TIPO_DATO"));
				objReporte.setColumna5(rs.getString("OBLIGATORIO"));

			} else if (tabla.equals("TCS_BEN_SUBPROGRAMA_SEDE")) {
				objReporte.setColumna1(rs.getString("CODIGO"));
				objReporte.setColumna2(rs.getString("SEDE"));
				objReporte.setColumna3(rs.getString("SUBPROGRAMA"));
				objReporte.setColumna4(rs.getString("DESDE"));
				objReporte.setColumna5(rs.getString("HASTA"));
				objReporte.setColumna6(rs.getString("NUMERO_BENEFICIO"));
				objReporte.setColumna7(rs.getString("NUMERO_BEN_DISPONIBLE"));
			}
			reporte.add(objReporte);
		}

		return reporte;

	}

	public Long getCantidadRegistros(String tabla, String fechaCreaDesde,
			String fechaMofificaDesde, String fechaCreaHasta,
			String fechaMofificaHasta, String usuarioCrea,
			String usuarioModifica) throws SQLException {
		String query = "SELECT COUNT(1) Cantidad ";

		if (tabla.equals("TCS_BEN_BENEFICIARIO")) {
			query += "FROM " + tabla + " tabla";

			query += " WHERE 1 = 1 ";

		} else if (tabla.equals("TCS_BEN_PROGRAMA")) {
			query += "FROM " + tabla
					+ " tabla, TCS_BEN_AREA area, paoyer.TCS_USUARIO usu ";

			query += " WHERE 1 = 1 " + " AND area.CODIGO = tabla.AREA_CODIGO "
					+ " AND usu.CODIGO = tabla.USU_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBPROGRAMA")) {
			query += "FROM "
					+ tabla
					+ " tabla, TCS_BEN_PROGRAMA pro, TCS_BEN_AREA area, paoyer.TCS_USUARIO usu ";

			query += " WHERE 1 = 1 " + " AND area.CODIGO = tabla.AREA_CODIGO "
					+ " AND usu.CODIGO = tabla.USU_CODIGO "
					+ " AND pro.CODIGO = tabla.PRG_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SEDE")) {
			query += "FROM " + tabla
					+ " tabla, paoyer.TCS_VALOR_FLEXIBLE vflex ";

			query += " WHERE 1 = 1 "
					+ " AND vflex.CODIGO = tabla.VFL_CODIGO_MUNICIPIO ";

		} else if (tabla.equals("TCS_BEN_BENEFICIO_OTORGADO")) {
			query += "FROM "
					+ tabla
					+ " tabla, TCS_BEN_BENEFICIARIO ben, TCS_BEN_SEDE sede, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE 1 = 1 " + " AND ben.CODIGO = tabla.BEN_CODIGO "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO "
					+ " AND sede.CODIGO = tabla.SEDE_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBP_ATR_BENEFICIARIO")) {
			query += "FROM " + tabla + " tabla, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE 1 = 1 "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO ";

		} else if (tabla.equals("TCS_BEN_SUBPROGRAMA_SEDE")) {
			query += "FROM " + tabla
					+ " tabla, TCS_BEN_SEDE sede, TCS_BEN_SUBPROGRAMA subpro ";

			query += " WHERE 1 = 1 "
					+ " AND subpro.CODIGO = tabla.SBPR_CODIGO "
					+ " AND sede.CODIGO = tabla.SEDE_CODIGO ";
		}

		if (!fechaCreaDesde.equalsIgnoreCase("")
				&& !fechaCreaHasta.equalsIgnoreCase("")) {
			query += " AND tabla.FECHA_CREA BETWEEN TO_DATE('" + fechaCreaDesde
					+ "','dd/mm/rrrr') AND TO_DATE('" + fechaCreaHasta
					+ "','dd/mm/rrrr')";
		}
		if (!fechaMofificaDesde.equalsIgnoreCase("")
				&& !fechaMofificaHasta.equalsIgnoreCase("")) {
			query += " AND tabla.FECHA_MODIFICA BETWEEN TO_DATE('"
					+ fechaMofificaDesde + "','dd/mm/rrrr') AND TO_DATE('"
					+ fechaMofificaHasta + "','dd/mm/rrrr')";
		}
		if (!usuarioCrea.equalsIgnoreCase("")) {
			query += " AND tabla.USUARIO_CREA = '" + usuarioCrea + "' ";
		}
		if (!usuarioModifica.equalsIgnoreCase("")) {
			query += " AND tabla.USUARIO_MODIFICA = '" + usuarioModifica + "' ";
		}

		ResultSet rst = null;
		rst = cf.getRecordsRset(query, null, conn);

		rst.next();

		return new Long(rst.getLong("Cantidad"));

	}

	// //////////////////
	public Collection SelectSecretaria(int iCodeUser, String strGroupUser)
			throws SQLException {
		String query = null;
		if (strGroupUser.equals("ADMINISTRADOR GENERAL")
				|| strGroupUser.equals("SUPER USUARIO")) {
			query = "SELECT distinct area.CODIGO CODIGO, area.NOMBRE NOMBRE "
					+ "FROM tcs_ben_area area "
					+ "WHERE area.AREA_CODIGO is null ";
		} else {
			query = "SELECT distinct area.CODIGO CODIGO, area.NOMBRE NOMBRE "
					+ "FROM tcs_ben_area area, paoyer.tcs_usuario usu "
					+ "WHERE usu.CAMPO_N1 = area.CODIGO ";
		}

		if (!strGroupUser.equals("ADMINISTRADOR GENERAL")
				&& !strGroupUser.equals("SUPER USUARIO")) {
			query += "AND usu.CODIGO = " + iCodeUser;
		}

		query += " ORDER BY area.NOMBRE";

		ResultSet rst = null;
		// System.out.println(query);
		ArrayList secretarias1 = new ArrayList();
		rst = cf.getRecordsRset(query, null, conn);
		AreaVO areas = null;
		while (rst.next()) {
			areas = new AreaVO();

			areas.setCodearea(rst.getString("CODIGO"));
			areas.setNombre(rst.getString("NOMBRE"));

			secretarias1.add(areas);
			areas = null;

		}
		rst.close();
		return secretarias1;
	}

	public Collection getUserAdm(String strNameGroup, Long lCodeArea,
			String strNameUser, String strFind) throws SQLException {
		String query = "SELECT usu.CODIGO, usu.NOMBRE, usu.DESCRIPCION "
				+ "FROM paoyer.tcs_usuario usu "
				+ "WHERE Fcs_Val_Est_Vigencia(usu.VIGENCIA) = 'S' ";

		String strPrueba = strFind;

		if (lCodeArea != null && lCodeArea.longValue() != 0) {
			query += "AND usu.CAMPO_N1 = " + lCodeArea.longValue();
		} else {
			if (!strNameGroup.equals("ADMINISTRADOR GENERAL")
					&& !strNameGroup.equals("SUPER USUARIO")) {
				query += "AND usu.CAMPO_N1 = " + lCodeArea.longValue();
			} else {
				if (!strNameGroup.equals("ADMINISTRADOR GENERAL")
						&& !strNameGroup.equals("SUPER USUARIO")) {
					if (lCodeArea != null && lCodeArea.longValue() != 0) {
						query += "AND usu.CAMPO_N1 = " + lCodeArea.longValue();
					}
				}
			}
		}

		if (strFind != null && strFind.equals("nombre")) {
			if (strNameUser != null && !strNameUser.equals("")) {
				query += " AND usu.NOMBRE like upper('" + strNameUser + "%')";
			}
		} else {
			if (strNameUser != null && !strNameUser.equals("")) {
				query += " AND usu.DESCRIPCION like upper('%" + strNameUser
						+ "%')";
			}
		}
		query += " ORDER BY NOMBRE";

		// System.out.println(query);
		ResultSet rs = null;
		ArrayList userAdmin = new ArrayList();
		rs = cf.getRecordsRset(query, null, conn);
		UserVO objUserVO = null;
		while (rs.next()) {
			objUserVO = new UserVO();

			objUserVO.setCode(new Long(rs.getInt("CODIGO")));
			objUserVO.setName(rs.getString("NOMBRE"));
			objUserVO.setDescription(rs.getString("DESCRIPCION"));

			userAdmin.add(objUserVO);
			objUserVO = null;
		}
		rs.close();
		return userAdmin;
	}

	public Collection getReportControl(SubProgramaVO criterea)
			throws SQLException {
		String query = "select area.NOMBRE SECRETARIA, prog.NOMBRE NOMPRO, sub.NOMBRE NOMSUB, "
				+ "(select count(1) from tcs_ben_beneficio_otorgado bot "
				+ "where bot.SBPR_CODIGO = sub.CODIGO "
				+ "and bot.USUARIO_CREA = '"
				+ criterea.getNombreUsuario()
				+ "') CANTIDAD "
				+ "from tcs_ben_programa prog, tcs_ben_subprograma sub, tcs_ben_area area "
				+ "where prog.CODIGO = sub.PRG_CODIGO "
				+ "and area.CODIGO = prog.AREA_CODIGO "
				+ "and sub.CODIGO in (select bot.SBPR_CODIGO "
				+ "      from tcs_ben_beneficio_otorgado bot "
				+ "      where bot.USUARIO_CREA = '"
				+ criterea.getNombreUsuario() + "' ";

		String strDesde = criterea.getDesdeVigencia();
		// if((Object)criterea.getDesdeVigencia() != null &&
		// (Object)criterea.getHastaVigencia() != null)
		if (!criterea.getDesdeVigencia().equals("")
				&& !criterea.getHastaVigencia().equals("")) {
			query += " AND bot.FECHA_CREA >= TO_DATE('"
					+ criterea.getDesdeVigencia()
					+ "','dd/mm/rrrr') and bot.FECHA_CREA < TO_DATE('"
					+ criterea.getHastaVigencia() + "','dd/mm/rrrr')) ";
		} else {
			if (!criterea.getDesdeVigencia().equals("")) {
				query += " AND bot.FECHA_CREA >= TO_DATE('"
						+ criterea.getDesdeVigencia() + "','dd/mm/rrrr')) ";
			} else {
				if (!criterea.getHastaVigencia().equals("")) {
					query += " AND bot.FECHA_CREA <= TO_DATE('"
							+ criterea.getHastaVigencia() + "','dd/mm/rrrr')) ";
				} else {
					query += ") ";
				}
			}
		}

		if ((Object) criterea.getCodeSubPrograma() != null) {
			query += " AND sub.CODIGO = " + criterea.getCodeSubPrograma() + " ";
		}

		if ((Object) criterea.getCodePrograma() != null) {
			query += " AND prog.CODIGO = "
					+ criterea.getCodePrograma().longValue() + " ";
		}

		query += " ORDER BY area.NOMBRE, prog.NOMBRE";
		// ////////////////////
		// System.out.println(query);
		ResultSet rs = null;
		int iContSecr = 0;
		String strAntSecr = "";
		int iContProg = 0;
		String strAntProg = "";
		int iContBen = 0;
		int iContCant = 0;

		ArrayList report = new ArrayList();
		rs = cf.getRecordsRset(query, null, conn);
		AuditoriaVO objAuditoriaVO = null;
		while (rs.next()) {
			objAuditoriaVO = new AuditoriaVO();

			objAuditoriaVO.setColumna1(rs.getString("SECRETARIA"));
			objAuditoriaVO.setColumna2(rs.getString("NOMPRO"));
			objAuditoriaVO.setColumna3(rs.getString("NOMSUB"));
			objAuditoriaVO.setColumna4(rs.getString("CANTIDAD"));

			if (!strAntSecr.equals(rs.getString("SECRETARIA")))
				iContSecr += 1;

			if (!strAntProg.equals(rs.getString("NOMPRO")))
				iContProg += 1;

			iContBen += 1;

			iContCant += rs.getInt("CANTIDAD");

			strAntSecr = rs.getString("SECRETARIA");
			strAntProg = rs.getString("NOMPRO");

			report.add(objAuditoriaVO);
			objAuditoriaVO = null;
		}
		if (iContCant != 0 && iContBen != 0) {
			objAuditoriaVO = new AuditoriaVO();
			/*
			 * objAuditoriaVO.setColumna1("TOTAL: "+String.valueOf(iContSecr));
			 * objAuditoriaVO.setColumna2("TOTAL: "+String.valueOf(iContProg));
			 * objAuditoriaVO.setColumna3("TOTAL: "+String.valueOf(iContBen));
			 * objAuditoriaVO.setColumna4("TOTAL: "+String.valueOf(iContCant));
			 */
			objAuditoriaVO.setColumna1("TOTAL:");
			objAuditoriaVO.setColumna2("TOTAL:");
			objAuditoriaVO.setColumna3("TOTAL:");
			objAuditoriaVO.setColumna4("TOTAL:");
			report.add(objAuditoriaVO);
			objAuditoriaVO = new AuditoriaVO();
			objAuditoriaVO.setColumna1(dF.format(iContSecr));
			objAuditoriaVO.setColumna2(dF.format(iContProg));
			objAuditoriaVO.setColumna3(dF.format(iContBen));
			objAuditoriaVO.setColumna4(dF.format(iContCant));
			report.add(objAuditoriaVO);
		}
		rs.close();
		return report;
	}

	public String getDescriptionUser(String strNumberDocument)
			throws SQLException {
		String strDescription = null;
		String query = "SELECT descripcion FROM paoyer.tcs_usuario "
				+ "WHERE nombre = '" + strNumberDocument + "'";
		ResultSet rst = null;

		rst = cf.getRecordsRset(query, null, conn);
		if (rst.next()) {
			strDescription = rst.getString("descripcion");
		}
		rst.close();
		return strDescription;
	}

	public Connection getConn() {
		return conn;
	}

}